Method for improved stitch generation

ABSTRACT

A method for user-defined lock stitches, the method comprising allowing a user to create a user-defined stitch pattern comprising a defined size. The method further includes storing the user-defined stitch pattern as a custom stitch pattern that can be inserted into a design at the defined size. The user-defined stitch pattern may include a tie-in, tie-off stitch pattern. The method may further include generating and sewing stitch coordinates for the custom stitch pattern.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a divisional of U.S. patent application Ser. No.12/355,674, filed Jan. 16 2009, entitled “Method for Improved StitchGeneration,” the contents of which are incorporated herein by reference.

TECHNICAL FIELD

The present invention relates generally to design software. Morespecifically, but not by way of limitation, the present inventionrelates to methods and apparatuses for designing and manipulating sewingpatterns.

BACKGROUND OF THE APPLICATION

Design programs allow the digital creation and manipulation of designsfor a large number of applications. Embroidery designs are created usingsoftware design programs such as embroidery digitizing software. Suchprograms allow for the customization and selection of various designparameters and features.

Design programs are implemented on a computer system that allows usersto create an embroidery design using design software and then exportthat design to an automated embroidery machine which can sew the designonto fabric.

After the designs are created using the design software, it is oftennecessary to alter the design for use on a different product whichrequires alteration in the size of the design or the type of fabric.When such changes occur, the user is required to re-calculate andre-enter parameter or feature selections which they made during theinitial design. This process requires user expertise, takes asignificant amount of time, and degrades the quality of the userexperience.

Thus it is apparent that there is a need for design software which canautomatically alter parameters and features when a design is altered.

When implemented, embroidery designs currently use a type of stitchingcalled underlay. Underlay stitching is located behind the top-stitchingand not visible when viewing the completed design itself. The functionof the underlay is to provide a stable base for the top-stitching of theembroidery design. Currently, design programs associate an underlaystitch with each separate design element. When a group of designelements are located close together, the underlay for each designelement is performed separately, which is less stable than if theunderlay is performed continuously for the group of design elements.

Thus it is apparent that there is a need for design software which canautomatically identify a group of design elements and perform acontinuous underlay stitch for the group of design elements.

All embroidery satin and fill top-stitch shapes distort when they aresewn on fabric. This is due to the thread being stretched in lengthduring the sewing process in order to keep it tight to the top of thefabric and properly set the lock stitch knot for each stitch. A givenshape will shrink on the sides perpendicular to the stitch direction,and expand in the direction parallel to the stitch direction. An exampleof this would be if the user digitized a shape that was exactly 1″square with the stitch direction running horizontal, sewed it on fabric,and measured the actual embroidery shape sewn it would measure about1.1″ in height and 0.95″ in width. Currently embroidery digitizingsoftware programs only allow digitizers to account for the loss of widthand no provision can be made by subtracting for the increase in height.The width compensation feature in embroidery digitizing programs iscommonly referred to as ‘Pull’ compensation in the industry while heightcompensation is referred to as ‘Push’ compensation and does not exist incurrent programs. It has to be done manually by distorting the digitizedshape in the embroidery file. This is done by shortening (cutting off)some of the top and bottom of the shape manually on screen.

Lettering accounts for a significant portion of all embroidery. Thehuman eye looks at lettering on a straight base line and notices anydeviations in the heights of the letters. Pleasing to the eye lettersare very consistent in height. Embroidery programs contain digitizedalphabet fonts. These are similar to True Type fonts in regular computerprograms, but the letters are filled with stitches instead of just witha certain color. When digitizers create these embroidery alphabet fontsthey must make each letter a certain height, and all letters aredigitized at that same height. This produces reasonably consistent,pleasing looking lettering at the digitized height, but as the lettersare scaled there is no provision for automatically adjusting for ‘Push’compensation. Certain letters such as AFHIJKLMNPRTUVWXY and Z appeartaller than those not listed.

Thus it is apparent that there is a need for design software which canautomatically perform push compensation on design elements.

Currently, embroidery digitizing software only allows users to digitizetheir own tie-in and tie-off stitches manually each time tie stitchesare needed, or select auto tie stitches from a limited amount of presettie shapes that are built in to the software. Embroidery productionfacilities use different types of tie patterns based on the fabric thedesign will be sewn on and also the embroidery machine type the designwill be produced on. If a user digitizes his own tie pattern it is onlyfor the top stitch element following it, and when the design is scaledso are these stitches. This makes them too close together or too farapart to be effective.

Thus it is apparent that there is a need for design software whichallows users to digitize and store custom tie stitches and recognizethose tie stitches to prevent scaling

SUMMARY OF THE APPLICATION

Illustrative embodiments of the present invention that are shown in thedrawings are summarized below. These and other embodiments are morefully described in the Detailed Description section. It is to beunderstood, however, that there is no intention to limit the inventionto the forms described in this Summary of the Invention or in theDetailed Description. One skilled in the art can recognize that thereare numerous modifications, equivalents, and alternative constructionsthat fall within the spirit and scope of the invention as expressed inthe claims.

The present invention can also include a method for user-defined lockstitches comprising allowing a user to create a user-defined stitchpattern, wherein the user-defined stitch pattern comprises a definedsize and storing the user-defined stitch pattern as a custom stitchpattern, wherein the custom stitch pattern can be inserted into a designat the defined size. In some embodiments, this method can furtherinclude designating the custom stitch pattern as a lock stitch, whereinthe lock stitch is a stitch pattern that does not change in size duringscaling.

These and other embodiments are described in further detail herein.

BRIEF DESCRIPTION OF THE DRAWINGS

Various objects and advantages and a more complete understanding of thepresent invention are apparent and more readily appreciated by referenceto the following Detailed Description and to the appended claims whentaken in conjunction with the accompanying Drawing wherein:

FIG. 1 is a sewing pattern for a letter “A” embroidery design which canbe created and altered consistent with the present invention.

FIG. 2 is a flowchart of a method for selecting stitch types aftermeasuring an altered design.

FIGS. 3 a and 3 b are charts of a possible stitch types for variousrepresentative fabrics.

FIG. 4 is a screenshot of the underlay stitch type selection screen ofan embroidery design program.

FIG. 5 is a screenshot of the top-stitch selection screen of anembroidery design program.

FIG. 6 is a flowchart of the selection of stitch types.

FIG. 7 is a flowchart of a method for push compensation.

FIG. 8 is a flowchart of a method of stitching continuous underlay.

FIG. 9 is a flowchart of a method for creating an ordered model forstitching continuous underlay.

FIG. 10 a-g is a diagram for creating an ordered model for stitchingcontinuous underlay.

FIG. 11 is a diagram of a computer with an embroidery design system inaccordance with the present invention.

DETAILED DESCRIPTION OF THE APPLICATION

In various illustrative embodiments of the invention, an embroiderydesign is created in or input into design software. Broadly, embroiderydesign refers to a digital file which contains information about one ormore of shapes (e.g., raster shapes or vector shapes), shape size,stitch types, stitch patterns, stitch coordinates, fabric type andthread type for an embroidery. An embroidery design can be comprised ofa single design element, a group of design elements, or multiple groupsof design elements that together create an image which can be sewn ontofabric. A design element is a discrete portion of an embroidery designwhich is usually a geometric shape. A group of design elements is agroup of intersecting, or sufficiently proximate, design elements. Inone embodiment, a group of design elements may be used to control stitchdirection in an intended shape. In another embodiment, a group of designelements may be a plurality of design elements which are sufficientlyclose to be treated as a group for continuous stitching.

For example, referring to the drawings, where like or similar elementsare designated with identical reference numerals throughout the severalviews, in FIG. 1 there is a sewing, or stitch, pattern for a letter “A”embroidery design 100 wherein the letter “A” embroidery design 100 iscomprised of a group of design elements 110. The group of designelements 110 is further comprised of five (5) individual design elements110 a-110 e. In FIG. 1, a group of intersecting design elements 110 isused to create an embroidery letter “A” 100. By using the group ofdesign elements 110, the stitch direction and stitch width in eachportion of the letter “A” can be controlled. For example, referring todesign element 110 c, it may be preferred that the stitch direction indesign element 110 c be substantially orthogonal to the stitch directionin design elements 110 a and 110 b. This prevents the top-stitch widthof 110 c from becoming too long and leading to snagging of thetop-stitch thread. In addition, the different stitch directions cancreate a desired visual effect for the embroidery.

The use of the letter “A” embroidery design 100 is exemplary only andnot intended to limit the present invention. In other embodiments, anembroidery design may be comprised of multiple letters and/or shapes.For example, in one embodiment two separate letter “A” embroiderydesigns 100 may be configured next to each other to form a singleembroidery design. In such an embodiment, each letter “A” could becomprised of a separate group of at least one design element. The use ofthe five (5) design elements 110 a-110 e in FIG. 1 is also exemplary.Those skilled in the art will be readily aware of how various embroiderydesigns can be created from one or more groups of at least one designelement.

The present invention provides systems and methods for generating stitchpatterns for a design element, a group or groups of design elements andembroidery designs. The flowchart of FIG. 2 shows one possibleembodiment of a method for automated stitch selection consistent withthe present invention. In FIG. 2 it shows a method for automaticallyselecting stitch type for an embroidery design. Stitch type refers toboth underlay-stitch types and top-stitch types. Underlay-stitch typesinclude center walk, edge walk, zigzag and fill. Top-stitch typesinclude satin and step-fill. In some embodiments, a user could definetheir own underlay-stitch type or top-stitch type. In this embodiment,the user-defined stitch type would also be available for selection.

The method in FIG. 2 begins at 210 by altering an embroidery design. Inone embodiment, altering an embroidery design 210 can include designsoftware accepting user inputs for altering an embroidery design and thedesign software then changing the embroidery design itself based on theuser inputs. In another embodiment, altering the embroidery design 210can include only the steps taken by the design software to change theembroidery design. Altering the embroidery design 210 can take variousforms. To illustrate without limitation, the embroidery design could bescaled larger or smaller, the type of fabric on which the design will besewn could be changed, or the orientation of the design on the fabriccould be changed. Other alterations will be known to a person ofordinary skill in the art.

In some embodiments, each design element can be stored as a vectorshape. A vector shape is a mathematical definition of a geometric shapewhich is independent of size. Vector shapes allow for improvedscalability during design alterations. For this reason, scaling of theembroidery design typically occurs by scaling the vector shapes. Inanother embodiment, each design element can be stored as a rastergraphic or raster shape. For this embodiment, scaling of the designwould typically occur by scaling the raster shape. However, due theformat and limitations of raster shapes, some resolution and loss ofapparent quality may occur during scaling.

Referring back to FIG. 2, after altering an embroidery design 210, themethod will determine the size of the altered design 220 and then selectthe stitch type for the altered design 230 based on the size of thealtered design. As used herein, the phrase “based on” is not intended tosuggest exclusivity (i.e., based only on) but is instead used torepresent “based at least in part on.” In one embodiment, this processis performed on a design-element-by-design-element basis. That is, themethod determines the size 220 of each design element and then selectsthe stitch type 230 for each design element based on each designelement's size.

Determining the size of the altered design 220 can take various forms.In one embodiment, the size of the altered design 220 can be based onthe average stitch width of the top-stitches of the altered design. Inanother embodiment, the size of the altered design 220 can be based onthe median stitch width of the top-stitches of the altered design. Ifviewed on a design-element-by-design-element basis, the size of eachdesign element can be based on the median top-stitch width of theindividual design element. In another embodiment, the stitch width ofthe top-stitch at the 70th percentile of all top-stitch widths for thedesign element could be used as representative of the size of the designelement. The reason for selecting a stitch width of the top-stitch atthe 70th percentile of all top-stitch widths, is to error on the side ofproviding greater underlay support for the design element. Othertop-stitch width percentiles could be selected consistent with thepresent invention.

In one embodiment in order to determine the median or 70th percentiletop-stitch width for the design element, a temporary top-stitch type canbe assigned to each design element. Once the temporary top-stitches aregenerated, the temporary top-stitches can be organized by stitch width.The top-stitch at the desired percentile can then be selected asrepresentative of the size of the design element. Other methods ofdetermining the median or 70th percentile top-stitch width will beunderstood by those of skill in the art.

Those of skill in the art will also be readily aware of other methodsfor determining the size of the altered design consistent with thepresent invention. For example, size could be determined based onproperties of the vector shape(s) or raster shape(s) of the altereddesign. While a vector shape and raster shape are independent of size,in the altered design the vector shape and/or raster shape(s) can have asizing property to identify the size to which the shape should bescaled. In one embodiment, a sizing property of the vector shape orraster shape, and the vector/raster shape itself, could be used in orderto determine a size of the altered design. The disclosed embodiments areexemplary only and not intended to limit the present invention.

In one embodiment, selecting stitch type based on the size of thealtered design 230 comprises comparing the size of the altered design toa set of values from which stitch type can be selected. The use of thephrase “set of values” is intended to include both numerical values, andstitch types corresponding to those numerical values. For example, inone embodiment, the set of values could be a set of size ranges andcorresponding size-range-stitch types. This set of size ranges andcorresponding size-range-stitch types could be organized in a list or achart. Using such a set of size ranges and size-range-stitch types, theappropriate (not temporary) size-range-stitch type can be selected forthe altered design. In the preferred embodiment, the stitch type isselected for each design element of the altered design on adesign-element-by-design-element basis. This allows for selection of amore appropriate stitch type for each design element based on theindividual design element's size. For example, using a list of sizeranges and size-range-stitch types, the appropriate size-range-stitchtype can be selected for each design element based on the size of eachdesign element.

Referring now to FIGS. 3( a) and 3(b) there are exemplarystitch-type-selection charts that could be used as the set of values forselecting stitch type 230 consistent with the present invention. FIG. 3(a) shows a chart for selecting a size-range-stitch type for top-stitchtype, where the size-range-stitch type includes both the top-stitch typeand a property, here density, of the top-stitch type. The chart in FIG.3( a) is split among vector conversion fabric style, lightweight knitfabric style and heavyweight knit fabric style. Those of skill in theart will be aware of many additional fabric styles that could be have aseparate set of values. Similarly, for FIG. 3( b) there is a set ofvalues for selecting stitch type based on size range for underlay-stitchtype. In FIG. 3( b), the size-range-stitch type can include a primaryand secondary-underlay-stitch type, or just a primary underlay stitchtype, and specific properties for the underlay stitch type. Again, thesize-range-stitch type for a given size range is shown to vary fordifferent fabric types or fabric styles. These values can bepreprogrammed so that users with little knowledge can still achievesuperior embroidery designs. For advanced users, the ability to presetthe values and have the system automatically adjust the stitch type asthe design is altered can save a considerable amount of time.

As shown in FIGS. 3( a) and (3)(b), the stitch-type-selection chartcontains various size ranges and size-range-stitch types correspondingto the size ranges. As shown in FIGS. 3( a) and 3(b), for differentfabric types, the size ranges and size-range-stitch types can vary.Other properties could also be considered and used to affect the sizeranges and size-range-stitch types such as, but not limited to stitchdensity, thread type, thread tension, fabric type, and fabricorientation relative to stitch direction, In another embodiment, sizemay be only one factor in a multi-factor determination of stitch type.In one embodiment, the stitch-type-selection chart could bepreprogrammed and stored by design software. This would allow beginningusers to achieve more efficient, better quality embroidery designs. Inanother embodiment, the size ranges and size-range-stitch types could beselected by a user. Referring to FIGS. 4 and 5 there are screen shots ofstitch-selection user interfaces that could be used consistent with thepresent invention.

Turning first to FIG. 4, shown is an exemplary underlay-stitch-selectionuser interface that could be used for allowing a user to select sizeranges and size-range-stitch types for underlay. For example, for a sizerange of 0 pt. to 20 pt. (1 point (pt.)=0.1 mm) the primary underlaysize-range-stitch type is shown as center walk. For a size range of 50pt. to 90 pt. the primary underlay size-range-stitch type is shown aszig zag and the secondary underlay size-range-stitch type is shown asedge walk. These fields may be pre-populated based on a preprogrammedchart, such as the chart in FIG. 3, or may be blank. Theunderlay-stitch-selection user interface in FIG. 4 includes a check-box(“Enable Auto-Underlay”) that can be selected if the user wants thesystem to determine size ranges and the size-range-stitch type for eachsize range. If the user wants to make his/her own selections, the usercan select the size ranges and the primary and secondary underlaysize-range-stitch type for each size range.

As shown in FIG. 4, in some embodiments selecting stitch type includesboth selecting the proper underlay-stitch type (e.g., edge walk) butalso selecting the properties for the underlay-stitch type. For example,if the underlay-stitch type is edge walk, selecting a stitch type caninclude selecting properties such as border margin and stitch length forthe edge walk. For zigzag, properties such as width and density may beselected. Those of skill in the art will be readily aware of the stitchtype properties that can be selected for various stitch types.

Similarly, in FIG. 5 there is an exemplary top-stitch-selection userinterface that could be used for allowing a user to select size rangesand size-range-stitch types for top-stitch. For example, in FIG. 5 smallobjects are set as objects (e.g., design elements) with a size of 0 pt.to 60 pt. and large objects are set as objects with a size over 60 pt.In this exemplary embodiment, the top-stitch types are satin andstep-fill, where satin is used for small objects and step-fill can beused with large objects. However the size-range-stitch type can befurther specified by defining satin and step-fill properties. Forexample, for satin, properties such as density and stitch length can bepreprogrammed or selected by the user. For step-fill, properties such asdensity, pull compensation, partition line sequence, minimum stitchlength, stitch length, and angle, may be preprogrammed or selected bythe user.

Referring now to FIG. 6, it shows two methods for selecting stitch type.The user can select manual or automatic stitch selection in 610. If theuser chooses manual stitch selection, then they must input the stitchtypes to use and at what ranges to use them in steps 630 and 620respectively. If they choose automatic, then the invention will usepre-selected stitch types which are well suited for each range andfabric. The system will save the stitch selection settings in step 640.In one embodiment, size ranges and size-range-stitch types are based oneither a preprogrammed list or chart or entered by the user beforealtering the embroidery design. In another embodiment, the user canalter the embroidery design 210 by changing the size ranges andsize-range-stitch types after substantially all other alterations arecomplete. In either case, the size ranges and size-range-stitch typesare automatically compared to the size of each design element so that auser does not manually have to select the stitch type for each designelement. That is to say the that size ranges and size-range-stitch typesare a set of values that can be applied automatically to all designelements, rather than a user having to specify a size-range-stitch typefor each design element.

Referring again to FIG. 2, once the stitch type for the embroiderydesign has been selected 230, the stitch pattern for the embroiderydesign is generated 240. The stitch pattern for an embroidery design isa set of instructions sufficient to enable an embroidery device to sewthe embroidery design. In some embodiments, this can include stitchorder, stitch path, and/or stitch coordinates. The stitch pattern can beincorporated into an embroidery file format such as, without limitation,wireframe file (file.ofm), expanded stitch file (file.dst), expandedfile (file.exp). Those of skill in the art will be aware of manyvariations to the stitch pattern consistent with the present invention.

For the present invention, the embroidery design can be altered 210 anynumber of times. In one embodiment, each time the embroidery design isaltered the resulting altered design may undergo the same process. Thesize of the altered design can be determined 220, the appropriate stitchtype selected 230, and the stitch pattern for the altered design isgenerated 240. In another embodiment, all alterations may be completedbefore the stitch selection process is completed. In addition to theembodiment disclosed above of selecting top-stitch and underlay stitchtype, other parameters and features can be altered.

In yet another embodiment, the stitch selection can be performed on anew embroidery design. In this embodiment, as a user inputs or digitizesa new design element, the size of the new design element can bedetermined 220, a stitch type selected based on the size of the newdesign element 230, and a stitch pattern generated for the new designelement 240. Variations and modifications of this and other embodimentsconsistent with the present invention will be readily understood bythose skilled in the art.

The invention can also handle the alteration of a design which containslock stitches such as tie-in and tie-out stitches. This feature allowsusers to digitize, store, and use their own custom stitch patterns anddesignate those custom stitch patterns as lock stitches so that they donot change during scaling. In one embodiment, the user can input a userdefined stitch pattern for tie-in and/or tie-out stitches and save theuser defined stitch pattern as a custom stitch pattern for future use.This allows embroidery production facilities to use different types oftie patterns based on the fabric the design will be sewn on and also theembroidery machine type the design will be produced on. In the presentinvention, when an embroidery design is scaled, the embroidery designsoftware recognizes the custom-stitch pattern as a lock stitch thatshould not be scaled. When altering a stitch design the invention canrecognize the tie-in and tie-out stitch and not scale or alter thestitch coordinates or stitch pattern representing the tie-in and tie-outstitches. In one embodiment, the design software can hold the size andshape of the custom stitch patterns in memory and places them in theproper parts of the design at only the digitized size, therefore,scaling has no effect on the patterns.

In yet another embodiment of the present invention, push compensation ofthe embroidery design can be performed. Referring to FIG. 7 there isshown an exemplary flowchart for performing push compensation. In thisexemplary embodiment, the width of an end of a design element isdetermined 710. Determining the width of the end of the design elementmay be performed in many ways. In one embodiment, an average width ofthe last five (5) stitches for the end is determined. In anotherembodiment, a median stitch width of the last ten (10) stitches may beused. Those skilled in the art will realize that there are numerous waysof determining the width of the end of the design element.

Using the width of the end of the design element, a push compensationcan be determined 720. In one embodiment, based on the experience ofembroidering designers and digitizers, a design program could contain apush compensation table which shows the amount to reduce the end of anelement based on the width of the element and the current fabric type.In one embodiment, the push compensation program can then check the endof the design element to determine if the end of the design elementintersects another design element 730. If it does, no push compensationis needed 740. If push compensation were performed, the elements mayfail to intersect.

Similarly, the height of the end of the design element can also bedetermined 750 so that only design elements of sufficient height aresubject to push compensation 760. In one embodiment determining theheight of the design element comprises determining the height of thelast five (5) stitch lines on the end the design element. A stitch lineis a linear line with one or more stitches. This is so that designelements with curves, or design elements under a certain height, not besubject to push compensation. Once the height of the end is determined750, the height can be compared to a threshold height value to determineif push compensation should be performed 760. In one embodiment, thethreshold height can be a predetermined constant value for all widths.In another embodiment, the threshold height can vary based on width ofthe end of the design element. In yet another embodiment, the thresholdheight can be a function of the push compensation. For example, thethreshold height could equal the push compensation for a given width orsome multiplier of the push compensation the a given width.

In step 770, for ends of design elements which require pushcompensation, the program consults the user defined table and makes therequired adjustment 770. In one embodiment, the push compensation can berepresented by a number of points by which to reduce the end of thedesign element. In this embodiment, performing the push compensation 770could involve determining the number of stitches to remove from the endof the design element in order to reduce the end of the design elementby the designated number of points. In another embodiment, performingthe push compensation 770 could involve adjusting the stitch coordinatesfor the end of the design element. For example, instead of removingcertain stitches, the stitch coordinates could be moved up or down toavoid the end of the design element from being seen as to long.

One exemplary table for push compensation could be as follows:

WIDTH RANGE PUSH COMPENSATION (PTS.) (PTS.)  0-20 −4 20-35 −5 35-50 −650+ −7The table above is exemplary only. Those of skill in the art willrealize that the push compensation values and width ranges could varybased on other properties such as, but not limited to, stitch density,thread type, thread tension, fabric type, backing and fabric orientationrelative to stitch direction,

It will be recognized by those of skill in the art that order of manysteps 710-770 can be varied consistent with the present invention. Forexample, in one embodiment, it can be first determined whether an end ofa design element intersects another design element 730. If there is anintersection, the entire push compensation process can be aborted.Further variations and changes can also be made within the scope of thepresent invention.

The invention also provides a method for implementing continuousunderlay for a group of design elements. FIG. 8 show a possibleembodiment of the invention. In step 810, the invention identifies agroup of design elements. There a number of ways that this can beaccomplished. For example, in one embodiment a group of design elementscan be identified 810 by determining intersecting, or sufficientlyproximate, design elements. For intersecting, or overlapping elements, agroup of design elements can be identified 810 based on each designelement overlapping with at least one other design element in the group.In another embodiment, a group of design elements may be a set of designelements which are sufficiently close to be treated as a group forcontinuous stitching. For this embodiment, a group of design elementscan be identified 810 based on each design element being sufficientlyclose to at least one other design element in the group. Determiningproximity of design elements can be based on temporary stitchcoordinates for the design element, or based on positioning of thevector or raster shape of the design elements. Other examples andmethods for determining a group of design elements will be understood bythose skilled in the art.

In step 820 the program creates a graph of the group of design elements.In this embodiment, the graph could be a set of vertices and edges thatrepresent the group of design elements. Using that graph, in step 830,the program creates a pattern for stitching the continuous underlay forthe group of elements. After the pattern is created, the design can betransferred to an embroidery machine and the underlay can be stitched aspart of the larger pattern.

Referring now to FIGS. 9 and 10, there is shown a method for creating agraph model of a group of design elements for continuous underlay. InFIG. 10 a group of design elements A-G representing the letter “K” areshown. In order to determine design elements A-G are part of a designgroup, a connector 1010 (examples are labeled for element A to B andelement A to C) between Element A and all other design elements isidentified. In the preferred embodiment, the connector between designelements represents the shortest distance between the design elements.This process is then repeated for elements B-E (not shown). Once allconnectors are created, any connectors longer than a predeterminedthreshold length are deleted. For example, in FIG. 10( c), the onlyremaining connector 1010 (A-B) for element A is the connector betweenelement A and element B. This ensures that elements which are too farapart are not included in the design element group. After the connectorsabove the threshold are deleted, the remaining connectors can then beused to create the graph.

After the group is selected, the graph of the group of design elementscan be created as outlined in step 820. FIG. 9 shows a flowchart of amethod for creating a graph of the group of design elements. In step910, a center walk 1020 is added for all elements in the group as shownin FIG. 10( d) (examples are labeled for element A and element F). Instep 920, the connectors in the model, are connected to the center walkusing an edge line or link-line 1030. This is shown in FIG. 10( e) (theexample labeled is for the link-line 1030 between the center walk 1020for element G the connector 1010 between elements F and G). Once thelink-line is added, a line graph of the model has been created. In thisembodiment, however, each edge (e.g., center walk edge and link line)must be duplicated 930 as shown in FIG. 10( f). The purpose ofduplicating each edge is to ensure that each node of the resultingduplicate-line graph has an even degree (or an even number of lines oredges connected to it) for a Euler Tour. With the duplicate-line graphmodel created, a Euler Tour can performed on all the edges. An EulerTour as mentioned in step 940 is a method for numbering all the edges orlines in a particular order. The numbered edges are shown in FIG. 10(g). When the edges are numbered the resulting graph serves as acontinuous ordered pattern for the underlay. The underlay can be sewnaccording to that pattern 950.

Other methods of modeling the group of design elements in order tocreate a continuous underlay pattern will be readily understood by thoseskilled in the art. For example, a depth first search (DFS) algorithmcould be used consistent with the present invention in order to traverseeach line or edge in the graph of the group of design elements. Othergraph search algorithms or graph traversal algorithms, such as but notlimited to, breadth first search, depth limited search, Dijkstra'salgorithm, the Floyd-Warshall algorithm, etc., could also be usedconsistent with the present invention as will be readily understood bythose skilled in the art.

Turning now to FIG. 11, it is a functional block diagram of a digitalcomputer (“computer”) 1100 equipped with an embroidery design system1140 in accordance with an illustrative embodiment of the invention.Computer 1100 may be a desktop computer, workstation, laptop computer,notebook computer, handheld computer, or any other device that includescomputing functionality. In FIG. 11, processor 1105 communicates overdata bus 1110 with input devices 1115, display 1120, memory 1125, andembroidery machine 1130. In some embodiments, the embroidery machine1130 may be located separately and not connected to the data bus 1110.In other embodiments, the embroidery machine 1130 can be located over anetwork connection (not shown) to the computer 1100. In yet anotherembodiment, the embroidery machine 1130 can receive information from thecomputer 1100, and embroidery design system 1140, via a portable storagedevice (not shown) such as a hard disk drive, a floppy disk, an opticaldisc, and/or a flash-memory-based storage device

Input devices 1115 may be, for example, a keyboard and a mouse or otherpointing device. Memory 1125 may include random-access memory (RAM),read-only memory (ROM), flash memory, or a combination thereof.

Memory 1125 includes embroidery design system 1140 and operating system1135. In one embodiment, operating system 1135 is a version of MICROSOFTWINDOWS (e.g., WINDOWS 98, WINDOWS NT, WINDOWS 2000, WINDOWS CE, WINDOWSME, WINDOWS XP, WINDOWS VISTA, etc.). In other embodiments, theprinciples of the invention may be applied to other operating systems.

For convenience here, the functionality of embroidery design system 1140has been divided into eight functional modules: design module 1141,design element measurement module 1142, stitch type selection module1143, custom stitch module 1144, modeling module 1145, continuousunderlay module 1146, push compensation module 1147 and stitch patterngeneration module 1148. In various embodiments of the invention, thefunctionality of these modules may be combined or subdivided in avariety of ways different from that indicated in FIG. 11. Also, thesefunctional modules may be implemented in software, firmware, hardware,or any combination thereof. In some embodiments, the above functionalmodules are embodied as program instructions executable by processor1105 and stored on a computer-readable storage medium, the variousfunctions performed by the modules being assigned to a plurality ofinstruction segments. The computer-readable storage medium can include,without limitation, a hard disk drive, a floppy disk, an optical disc, aflash-memory-based storage device, or other computer-readable medium.

Referring first to the design module 1141, this module contains eachelement of the embroidery design and their properties. The design modulecan take an embroidery design as an input, such as from a design file,or an embroidery design can be created in the design module with userinput. Alterations to the embroidery design by other modules are savedto the embroidery design in the design module 1141. The embroiderydesign can be stored in a number of formats and can be output to bestitched by an embroidery machine.

The second module 1142, the design element measurement module, can usemany possible methods to determine the size of a design. The module cananalyze the stitch width of an element to determine its size. It canalso determine size based on vector shape(s) or raster shape(s). Oncethe design element measurement module determines the size it makes thesize available for use by other modules.

The third module 1143 is the stitch type selection module. This moduleinteracts with module 1142 and uses the size determined by that moduleto select a stitch type. Module 1143 bases its selection on astitch-type-selection chart which contains a set of values which guidein selecting stitch type. The stitch-type-selection chart can either bepreprogrammed or based on user input. The stitch type selection moduleoperates separately on each design element in order to make a moreappropriate stitch type selection.

The custom stitch module 1144 takes input from the user and savesinformation to the design module 1141. It allows the user to input acustom lock stitch which can be saved and used again on other designs.Custom lock stitches are recognized by the system and their size remainsconstant, even if the size of the design changes.

The modeling module 1145 can take as input a group of design elementsand create an ordered model or graph of those elements. The procedurecarried out by the modeling module 1145 is outlined in FIGS. 9 and 10.The output of the modeling module 1145 is a model or graph which can beused by other modules.

The model created by the modeling module 1145 can be used by thecontinuous underlay module 1146 in order to determine a stitch patterfor sewing the continuous underlay. The continuous underlay module 1146adds to the embroidery design a series of stitches which provide animproved base for the top stitches.

The push compensation module 1147 performs push compensation. The pushcompensation module can communicate with the design measurement module1142, which can measure the width of the end of each design element, toobtain information for push compensation. The design measurement module1142 can perform this measurement in a number of ways. The module 1147can determine which elements require push compensation and which do not.Using the measurement, the module 1147 can also determine how to performpush compensation on the element and then perform that compensation. Themodule 1147 performs the push compensation by adjusting the end of theelement in the design to the element will appear more visually pleasing.

The stitch pattern generation module 1148 converts the design containedin the design module 1141. The design in 1141 contains all the changeswhich are made to the design 1141 by the other modules. The module 1148may change the design from the format in which it is stored into astitch pattern file which can be sewn by an embroidery machine.

In conclusion, the present invention provides, among other things, amethod and apparatus for altering sewing designs while automaticallyaltering or maintaining certain parameters or features. It also providesa method for design and underlay for a group of design elements whichresults in a more stable design. Those skilled in the art can readilyrecognize that numerous variations and substitutions may be made in theinvention, its use, and its configuration to achieve substantially thesame results as achieved by the embodiments described herein.Accordingly, there is no intention to limit the invention to thedisclosed exemplary forms. Many variations, modifications, andalternative constructions fall within the scope and spirit of thedisclosed invention as expressed in the claims.

We claim:
 1. A method for user-defined lock stitches, the methodcomprising allowing a user to create a user-defined stitch pattern,wherein the user-defined stitch pattern comprises a defined size; andstoring the user-defined stitch pattern as a custom stitch pattern,wherein the custom stitch pattern can be inserted into a design at thedefined size.
 2. The method of claim 1, further comprising: designatingthe custom stitch pattern as a lock stitch, wherein the lock stitch is astitch pattern that does not change in size during scaling.
 3. Themethod of claim 1, wherein the user-defined stitch pattern comprises atie-in stitch pattern.
 4. The method of claim 1, wherein theuser-defined stitch pattern comprises a tie-off stitch pattern.
 5. Themethod of claim 1, further comprising: generating stitch coordinates forthe custom stitch pattern; and sewing the stitch coordinates for thecustom stitch pattern.